Skip to main content
Version: Pro Edition for Eclipse Mosquitto 2.8

Mosquitto Metrics Exporter

Premium

Pro Edition for Eclipse Mosquitto provides a Prometheus exporter and a InfluxDB exporter which both expose the metrics available in the core broker and any metrics provided by other plugins.

Plugin configuration​

Prometheus Metrics Exporter​

To enable the Prometheus Metrics Exporter plugin it must be loaded into the broker with, by adding the following to your mosquitto.conf:

global_plugin /usr/lib/cedalo_metrics_prometheus.so

The plugin has some options which can be configured.

  • bind_address : by default, the exporter will listen on all available network interfaces. You can bind it to a specific address using this option. For example, plugin_opt_bind_address 192.0.2.1
  • port : by default, the exporter will listen on port 8000. You can use another port with this option. For example plugin_opt_port 8100
  • update_interval : metrics stored in the exporter are updated on a set interval, by default 15 seconds. It is important to match this to the scrape interval of your Prometheus setup. If you are using a 60 second scrape interval, then use plugin_opt_update_interval 60

A sample configuration could look like:

global_plugin /usr/lib/cedalo_metrics_prometheus.so
plugin_opt_update_interval 60
plugin_opt_bind_address 192.0.2.1
plugin_opt_port 8100

InfluxDB Metrics Exporter​

To enable the InfluxDB Metrics Exporter plugin it must be loaded into the broker with, by adding the following to your mosquitto.conf:

global_plugin /usr/lib/cedalo_metrics_influxdb.so

The plugin has some options which can be configured.

  • hostname: The InfluxDB hostname to connect to. Required.

  • port: The network port to use to connect to InfluxDB. Optional, defaults to 8086.

  • username: The username to use when connecting to InfluxDB. Required.

  • password: The password to use when connecting to InfluxDB (i.e., the authorization token for the specified user). Required.

  • database: The InfluxDB database to send metrics to. Required.

  • use_tls: Set to true/false to use TLS encrypted connections. It is recommended to always use encrypted connections. Optional, defaults to false.

  • cafile: If you need to use a custom CA certificate for connecting to your InfluxDB instance, use this option to specify the file to use.

  • hostlabel: By default, the plugin will attempt to read the hostname of the instance where it is running, and set the host tag label to that value. This option allows you to specify a different label.

  • measurement: By default, the mosquitto measurement will be used for storing metrics. This option allows you to specify a different label.

  • update_interval : metrics stored in the exporter are published on a set interval, by default 15 seconds.

  • connect_timeout : Number of seconds to wait when connecting to InfluxDB, in case of failure. Optional, defaults to 10 seconds.

A sample configuration could look like:

global_plugin /usr/lib/cedalo_metrics_influxdb.so
plugin_opt_update_interval 60
plugin_opt_hostname influxdb.example.com
plugin_opt_port 8100
plugin_opt_hostlabel broker1
plugin_opt_database edge_data
plugin_opt_use_tls true
plugin_opt_username username
plugin_opt_password password

Optional configuration (applies to both exporters)​

You may also consider turning off the $SYS updates from the broker:

sys_interval 0

Available metrics​

labelmetric typedescription
mosquitto_sessionsGaugeCurrent client sessions (includes offline clients)
mosquitto_clients_offlineGaugeCurrent offline client count
mosquitto_clients_onlineGaugeCurrent online client count
mosquitto_clients_expiredCounterTotal clients expired due to keepalive
mosquitto_subscriptionsGaugeCurrent subscription count
mosquitto_shared_subscriptionsGaugeCurrent shared subscription count
mosquitto_retained_messagesGaugeCurrent retained message count
mosquitto_bytes_receivedCounterTotal bytes received
mosquitto_bytes_sentCounterTotal bytes sent
mosquitto_pub_bytes_receivedCounterTotal PUBLISH payload bytes received
mosquitto_pub_bytes_sentCounterTotal PUBLISH payload bytes sent
mosquitto_message_store_countGaugeCurrent stored message count
mosquitto_message_store_bytesGaugeCurrent stored message bytes
mosquitto_out_packetsGaugeCurrent queued outgoing packet count (includes offline clients)
mosquitto_out_packet_bytesGaugeCurrent queued outgoing packet bytes (includes offline clients)
mosquitto_socket_connectionsCounterTotal incoming connections
mosquitto_mqtt_packets_receivedCounterTotal MQTT packets received
mosquitto_mqtt_packets_sentCounterTotal MQTT packets sent
mosquitto_mqtt_connect_receivedCounterMQTT CONNECT received
mosquitto_mqtt_connect_sentCounterMQTT CONNECT sent
mosquitto_mqtt_connack_receivedCounterMQTT CONNACK received
mosquitto_mqtt_connack_sentCounterMQTT CONNACK sent
mosquitto_mqtt_publish_droppedCounterMQTT PUBLISH dropped
mosquitto_mqtt_publish_receivedCounterMQTT PUBLISH received
mosquitto_mqtt_publish_sentCounterMQTT PUBLISH sent
mosquitto_mqtt_puback_receivedCounterMQTT PUBACK received
mosquitto_mqtt_puback_sentCounterMQTT PUBACK sent
mosquitto_mqtt_pubrec_receivedCounterMQTT PUBREC received
mosquitto_mqtt_pubrec_sentCounterMQTT PUBREC sent
mosquitto_mqtt_pubrel_receivedCounterMQTT PUBREL received
mosquitto_mqtt_pubrel_sentCounterMQTT PUBREL sent
mosquitto_mqtt_pubcomp_receivedCounterMQTT PUBCOMP received
mosquitto_mqtt_pubcomp_sentCounterMQTT PUBCOMP sent
mosquitto_mqtt_subscribe_receivedCounterMQTT SUBSCRIBE received
mosquitto_mqtt_subscribe_sentCounterMQTT SUBSCRIBE sent
mosquitto_mqtt_suback_receivedCounterMQTT SUBACK received
mosquitto_mqtt_suback_sentCounterMQTT SUBACK sent
mosquitto_mqtt_unsubscribe_receivedCounterMQTT UNSUBSCRIBE received
mosquitto_mqtt_unsubscribe_sentCounterMQTT UNSUBSCRIBE sent
mosquitto_mqtt_unsuback_receivedCounterMQTT UNSUBACK received
mosquitto_mqtt_unsuback_sentCounterMQTT UNSUBACK sent
mosquitto_mqtt_pingreq_receivedCounterMQTT PINGREQ received
mosquitto_mqtt_pingreq_sentCounterMQTT PINGREQ sent
mosquitto_mqtt_pingresp_receivedCounterMQTT PINGRESP received
mosquitto_mqtt_pingresp_sentCounterMQTT PINGRESP sent
mosquitto_mqtt_disconnect_receivedCounterMQTT DISCONNECT received
mosquitto_mqtt_disconnect_sentCounterMQTT DISCONNECT sent
mosquitto_mqtt_auth_receivedCounterMQTT AUTH received
mosquitto_mqtt_auth_sentCounterMQTT AUTH sent
mosquitto_basic_auth_successCounterSuccessful username/password authentication attempts
mosquitto_basic_auth_failCounterFailed username/password authentication attempts
mosquitto_basic_auth_errorCounterErrored username/password authentication attempts
mosquitto_extended_auth_successCounterSuccessful extended authentication attempts
mosquitto_extended_auth_failCounterFailed extended authentication attempts
mosquitto_extended_auth_errorCounterErrored extended authentication attempts

The broker process related metrics are exported by the Prometheus exporter only.

labelmetric typedescription
process_max_fdsGaugeMaximum number of allowed open file descriptors (including network sockets).
process_virtual_memory_max_bytesGaugeMaximum amount of virtual memory available in bytes
process_cpu_seconds_totalGaugeTotal user and system CPU time spent in seconds.
process_virtual_memory_bytesGaugeVirtual memory size in bytes.
process_resident_memory_bytesGaugeResident memory size in bytes.
process_start_time_secondsGaugeStart time of the process since unix epoch in seconds.
process_open_fdsGaugeNumber of open file descriptors (including network sockets).